#coding: utf-8
import math
import re
def check_str(list, text):
    for i in list:
        if str(i) in text:
            return True
    return False

def cut_content(sentence):
    if not isinstance(sentence, str):
        sentence = str(sentence)
    content = []
    # sentence = sentence.encode('gb2312',errors='ignore')
    paragraphs = sentence.split('\n')
    punctuation = ['。', '！', '；', ':']
    sub_punctuation = [',', '，']
    paragraph_content = []
    paragraph_index = 0
    sign = len(paragraphs)
    abstract_sign = 0
    for index, paragraph in enumerate(paragraphs):
        paragraph = paragraph.replace(' ', '')
        if paragraph[0:2] == '摘要' or paragraph[0:4] == '中文摘要' or paragraph[0:4] == '【摘要】' or paragraph[0:4] == '[摘要]':
            abstract_sign = index
    for index, paragraph in enumerate(paragraphs):
        if len(paragraph.strip()) > 0:
            paragraph = paragraph.replace('【', '[').replace('】', ']')
            paragraph_content.append(paragraph)
            ckwx_sign = ['[M]', '[N]', '[J]', '[P]', '[Z]', '[G]', '[O]', '[S]', '[D]', '[R]', '[K]', '[W]', '[B]',
                         '[A]', '[Q]', '[L]', '[V]', '[C]', '[T]', '[I]', '[Y]', '[H]', '[E]']
            if index < abstract_sign:
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 0
                    }
                )
                paragraph_index += 1
                continue
            if '参考文献' in paragraph and len(paragraph.strip()) < 10:
                sign = index
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 0
                    }
                )
                paragraph_index += 1
                continue
            if ('关键词:' in paragraph or '关键词：' in paragraph) and len(paragraph) < 40:
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 0
                    }
                )
                paragraph_index += 1
                continue
            if index > sign and check_str(ckwx_sign, paragraph):
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 0
                    }
                )
                paragraph_index += 1
                continue
            if '本人所呈交的毕业论文' in paragraph or '本人郑重声明' in paragraph:
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 0
                    }
                )
                paragraph_index += 1
                continue
            if len(paragraph.strip()) <= 55 and len(paragraph.strip()) > 0:
                content.append(
                    {
                        'context': paragraph,
                        'paragraph_index': paragraph_index,
                        'check': 1
                    }
                )
                paragraph_index += 1
            else:
                paragraph = paragraph.strip()
                sentence_list = SplitSentences('([。！；;])',paragraph)
                for sentence_list_item in sentence_list:
                    if len(sentence_list_item) > 55:
                        sub_sentences_list = SplitSentences('([,，])',sentence_list_item)
                        paragraph_sentence_list = merge_sub_sentence(sub_sentences_list)
                        for paragraph_sentence_list_item in paragraph_sentence_list:
                            content.append(
                                {
                                    'context': paragraph_sentence_list_item,
                                    'paragraph_index': paragraph_index,
                                    'check': 1
                                }
                            )
                    else:
                        if len(sentence_list_item) > 0:
                            content.append(
                                {
                                    'context': sentence_list_item,
                                    'paragraph_index': paragraph_index,
                                    'check': 1
                                }
                            )
                paragraph_index += 1
    return content, paragraph_content


def SplitSentences(splitstring,sentecne):
    sentences = re.split(splitstring, sentecne)
    sentences.append("")
    sentences = ["".join(i) for i in zip(sentences[0::2], sentences[1::2])]
    return sentences



def merge_sub_sentence(sentence_list):
    sentences_res = []
    sentences = ''.join(sentence_list)
    count_list = []
    sum = 0
    if len(sentence_list) == 1:
        return sentence_list
    else:
        start=0
        index = 0
        mark = []
        for item in sentence_list:
            count_list.append(len(item))
            sum += len(item)
        for char in count_list:
            start=index
            index += char
            mark.append(index-1)
        if 60 > sum >= 50:
            str = [''.join(sentence_list)]
            return str
        else:
            slice = math.ceil(sum/50)
            average_base =  math.ceil(sum/slice)
            average_list = []
            start=0
            for i in range(1, slice):
                average_list.append(i*average_base)
            for average_item in average_list:
                target = nearest(mark, average_item)
                sentences_res.append(sentences[start:target+1])
                start = target+1
            sentences_res.append(sentences[start:len(sentences)])
        return sentences_res


def SumPreItem(n, list):
    sum = 0
    for i in range(0, n):
        sum+=list[i]
    return sum

def nearest(mark, average):
    min = 1000
    target = 0
    for i in mark:
        dst = abs(average - i)
        if dst < min:
            min = dst
            target = i
    return target

if __name__ == '__main__':
    content = '''
    从传播学角度解读电影《冈仁波齐》的朝圣之路
摘要：电影《冈仁波齐》是导演张杨的作品，影片“记录”了11位藏民从芒康到拉萨再到冈仁波齐的朝圣之旅 。在《变形金刚》的夹击下，这部电影不仅取得了近1亿元的票房收入，还引发了广泛关注。本文从传播者、传 播内容、传播渠道和受众四个角度分析影片的传播价值。
关键词：《冈仁波齐》；张杨；传播渠道；受众

中国电影近几年在产量和票房上都实现了飙升，在商业化及产业化方面也取得惊人成绩，商业电影表现出无限 生机和巨大商机。与此相比，大部分艺术电影却停留在好口碑低票房的怪圈中，且还在苦苦地探索商业化运作 的有效途径。《冈仁波齐》作为一部小众化的艺术电影，在最初排片只有1.6%的情况下实现逆袭，取得近1亿 元票房，这看似偶然，但从传播学的角度解读时就会发现它成功的“密钥”。

一、从传播者角度分析

传播者是信息的编码者和发送者，是传播活动的起点，电影《冈仁波齐》的传播者主要是导演张杨和11位素人 演员。作为把关人，他们对信息进行搜集、过滤和加工，最终决定呈现哪些信息以及如何呈现这些信息，这些 信息即电影的故事情节。

（一）导演张杨：寻找自己真实的生命和电影的关系

1997年，张杨导演的处女座《爱情麻辣烫》取得了3000万的票房，还获得金鸡奖，第二部作品《洗澡》获圣塞 巴斯蒂安国际电影节最佳导演奖，之后的《昨天》《向日葵》《落叶归根》等影片使他成为各大电影节的常客 。张杨执导的电影既有口碑又有票房，他是第六代导演中少数在商业和艺术上取得双重成功的导演。他的电影 关注现实生活，总能引起观众的情感共鸣，深得观众喜爱。自电影《飞越老人院》之后，张杨几乎消失在大众 视野中，在沉寂5年后他带着两部西藏题材的影片回归，这必将吸引他的大批影迷前往观看。

张杨的电影有着很强的个人特色，这与他的生活阅历、他对电影的思考有着紧密的关系。当他不知道拍电影该 往哪走了，突然觉得有点找不到自我了时，他没有被资本裹挟，而是“选择回到电影本身，去做一个导演真正 内在的、内心最想做的事” 。他“用苦行僧的方式，花一年的时间跟一组真实朝圣队伍拍摄” ，同时也开启了一段他关于自我和电影的修行。电影中呈现的磕头朝圣、转山，以及对自我寻找、生死轮回、 电影本体等问题的探讨，正是源自于他的“西藏情结”。如他自己所言，“放弃已知的技巧，跳出创作和市场 的安全区，像第一次拍电影那样，用纯真的眼光去发现，用最笨的方法去寻找，没有完美的电影，但能在艺术 上给自己设定一座冈仁波齐，走在朝圣的路上，坚定地寻找自己心中的电影神山，已经足够幸福了”。正是这 份发自内心的对电影的追寻，明确了电影的主题：在路上和寻找。导演在路上也找到了自己的最终目的—— 寻找自己真实的生命和电影的关系，这样一部走心交心的电影怎能不吸引观众走进影院，怎能不令观众感动！

（二）11位素人演员：用身体丈量信仰

11位素人演员是该片的又一大看点，这支朝圣队伍由老人、小孩、孕妇、屠夫、失意的少年组成，他们用一年 多的时间徒步跪拜2500公里。这一路上他们经历的、遇到的任何事都不能阻挡他们神往的方向，信仰是他们心 中最重要的事。当拖拉机被撞坏，他们选择原谅肇事者，毫无怨言地拉起行李继续前行，男人们在前面拉车， 女人们在后面磕头，一段距离后，男人们重新返回原地，将“落下”的那段路补上。他们心无旁骛地面对、接 受发生的一切，真实地再现了日常生活中的自己，用身体诠释对信仰的坚定与虔诚。这11位真实、质朴的传播 者用心、用行动传达出来的故事更能吸引观众去看，让观众在观看的过程中被震撼，而后观照自我。

二、从传播内容角度分析

传播内容即经过符号再现的信息，可从“说什么”和“怎么说”这两点进行分析。这部两个小时都在磕长头的 电影，向观众说了哪些内容？通过视听语言它是怎么说的呢？

（一）神圣即生活

这部电影的故事情节非常简单。藏历马年，11位藏民从芒康县普拉村出发，磕长头2500公里去冈仁波齐朝圣。 在很多西藏题材的影视作品中，朝圣通常会被视为一种灵魂得到净化的象征，以至在“他者”眼中朝圣是神秘 而神圣的。而张杨想透过电影表达“这个世界上没有什么生活方式是完全正确的，但若干年后，人们仍可以从 这部影片里，看到一个民族还这样生活过。神山圣湖不是终点，接受平凡的自我，但不放弃平凡的理想和信仰 ，热爱生活，我们都在路上”。影片的大部分时间都在呈现朝圣者起居、搭帐篷、吃饭、诵经等琐碎的日常生 活，从头至尾都在无限接近他们生活本身的状态，即便是最重要的磕长头，也只是从不同角度、不同景别重复 、静默地记录着每个人磕头的神情与姿态。张杨用镜头平静地表现出在朝圣者心中朝圣只不过是生活，朝圣行 为被赋予了日常性，信仰不应是高高在上的。想要获得平和与安宁，我们就要像他们那样，在生活中用切实的 行动和虔诚的内心去修行。

（二）影像风格：纪录+戏剧

电影通过视听语言来编写内容、表达创作者的意图并引燃观众的情绪。《冈仁波齐》是一部采用纪录手法拍摄 的剧情片，用纪录手法向观众传递“在朝圣者眼中朝圣只是生活”，这种追求“生活化”的真实表达，更能让 观众信服且更具冲击感，而设计好的故事和人物又能满足观众对藏区和宗教的想象。

巴赞说“电影是现实的渐近线” ，导演通过纪录式旁观，运用固定长镜头平静客观地记录着藏民的日常生活、朝圣路上发生的事以及磕长头， 这种无限渐近藏民生活的拍摄手法更能真实表达信仰的意义。比如在影片结尾，导演用了3组固定长镜头，记录 了11人磕长头、转山的行为，镜头由近及远地呈现天地人之间的关系，朝圣者在神山冈仁波齐追寻着自我身体 与心灵的平衡。这种始终冷静记录、不介入到“朝圣”中去的拍摄手法引导着观众在观影过程中不断反观自我 ，叩问人生之路自己将以何种方式修行。

这部“无剧本”、即兴创作的电影，其“戏剧”性主要体现在对人物和故事的设计上，在升华主题的同时，调 动了观众的情绪，满足观众的审美需求。比如在选演员时，导演选择了更能体现藏族人形象的康巴人，这支由 不同年龄层组成的朝圣队伍，有从未去过拉萨、渴望朝圣的70岁丧兄的老人，有从未去过医院的孕妇，还有希 望赎罪的屠夫、小女孩等，这样一支队伍在观众内心铺设了“悬念”，让观众从一开始就质疑他们最终是否能 到达他们神往的目标，时时担心是否会有人落下或是放弃。此外，对故事结构的设计，有起点有终点，有次仁 产子，有杨培老人去世，让观众深刻体会到他们为朝圣而生为朝圣而死的虔诚，既表现了影片的戏剧感又升华 了主题—— 对生死轮回的思考。影片的影像风格将纪录与故事、真实与虚幻、生活与信仰平衡得恰如其分，用真实震撼观 众，用故事设计满足观众的审美期待，引发观众重新认识自我，并能用“平常心”对待生活中发生的一切，从 而在人生路上虔诚而坚定地修行。

三、从传播渠道的角度进行分析

传播渠道对传播效果的影响深远，是连接受众与文化产品的桥梁，传播渠道越多，文化产品与受众接触的机会 越多。国产艺术电影虽然在奖项和口碑上已取得令人瞩目的成绩，但却很少有转化成上座率的，《冈仁波齐》 不仅收获近1亿票房，还意外地成为今年暑假档国产电影的一匹黑马，这与其营销团队挖掘线上线下多元化的传 播渠道有着密切关系。

在线上，营销团队首先采用“众筹”营销策略，不仅筹到钱，还筹到了资源，以此引发更热的观影效应。200多 人参与众筹，筹集到的近800万资金全部用作电影宣发，他们不仅是投资人、消费者，还是影片的免费营销员， 通过社群分享实现点对点、点对群的精准传播，挖掘到更多“自来水”（粉丝、免费水军）参与到多级传播中 ，利用口碑传播扩大了传播面，为影片找到了大量精准观众。为扩大宣发力度，使影片热度不减，宣传方还邀 请意见领袖在微博、微信、豆瓣等社交媒体上引爆话题、掀起讨论，令观众及潜在观众在心理或情感上达成共 鸣。此外，营销团队还进行了整合营销，在宣传《冈仁波齐》的同时还为张杨的另一部即将上映的西藏题材影 片《皮绳上的魂》进行预热。

在线下，营销团队在影片上映前筹划了在9个城市进行为期8天的路演，每个城市邀请不同领域的嘉宾，有影评 人、学者、音乐人、导演、编剧等前来助阵，并与张杨一起解读电影的台前幕后，和观众分享信仰、宗教、在 路上发生的故事。在路演的过程中，营销团队通过“分众”传播找到了电影的核心观众，有在路上的旅行者、 摄影爱好者、有西藏情结的人、有信仰的人、文艺青年等。另一个为影片制造新卖点的营销事件，就是邀请朴 树献唱电影主题曲《No Fear in My Heart》，朴树的气质以及歌曲都与电影主题相得益彰，吸引歌迷、文艺青年也走进影院。由此可见，艺术电影 想要获得成功，在商业化推动下谋划多元化的传播渠道是非常必要的。

四、从受众的角度进行分析

《冈仁波齐》这部电影的成功很大程度上与其精准的受众定位有关。“受众即市场”，受众被看作是信息产品 的消费者和大众传媒的市场，信息产品想要在市场上销售出去，就要满足消费者的各种需求，诸如娱乐、认知 和审美满足等。受众在传播活动中处于主体地位，接受信息时有着选择性心理，此外因年龄、性别、文化程度 、阶层等差别还存在着多样化、差异化、分众化的特征，因此在竞争激烈的暑期档，传播者和营销团队必须针
对受众需求和特征进行传播，营造有利于自己的市场氛围。这部关于朝圣的电影主要吸引了导演张杨的影迷、 有西藏情结的人、文艺青年、有信仰的人走进影院，他们与导演和演员一起上路，朝着心中的“冈仁波齐”前 进，心怀善念和信仰，面对四季变迁、生死轮回，重复而平淡地生活着。受众不是被动的接收者，而是积极主 动的参与者，看电影的时候，他们和电影交流、与自己交流，观影后还利用微信、微博等与他人进行互动，创 造更大的市场价值。

在互联网时代，一部电影的成功，除了导演要有影响力、影片质量要高、演员表演要到位外，更要善于挖掘多 元化的传播渠道找准观众，才能实现良好的传播效果。仍在困境中挣扎的大多数艺术电影可以从《冈仁波齐》 的成功中获取一些有益的启示，让中国电影市场更加多元化。（作者单位：呼伦贝尔学院）
    '''
    content, paragraph_content = cut_content(content)
    for item in content:
        print(item)